/**
 * 风险评估API接口
 * 封装所有风险评估相关操作
 */

const request = require('./request');

/**
 * 获取风险评估结果
 * @returns {Promise} 风险评估结果
 */
function getAssessment() {
  return request.get('/risk-assessment');
}

/**
 * 获取最新的风险评估记录
 * @returns {Promise} 最新的风险评估记录
 */
function getLatestAssessment() {
  // 使用与health界面相同的API路径
  return request.get('/health/risk-assessment', { limit: 1 })
    .then(response => {
      // 如果成功获取到记录并且有数据
      if (response.success && response.data && response.data.records && response.data.records.length > 0) {
        const record = response.data.records[0];
        return {
          success: true,
          data: {
            _id: record._id,
            timestamp: record.measuredAt,
            result: record.result,
            inputData: record.inputData
          }
        };
      }
      // 如果没有记录
      return {
        success: false,
        message: '没有风险评估记录'
      };
    })
    .catch(error => {
      console.error('获取最新风险评估记录失败:', error);
      return {
        success: false,
        message: '获取风险评估记录失败',
        error
      };
    });
}

/**
 * 获取风险评估历史记录
 * @param {Object} params 查询参数，例如 {limit, startDate, endDate}
 * @returns {Promise} 风险评估历史记录列表
 */
function getAssessmentHistory(params = {}) {
  return request.get('/risk-assessment/history', params);
}

/**
 * 计算风险评估
 * @param {Object} data - 风险因素数据
 * @returns {Promise} 风险评估结果
 */
function calculate(data) {
  return request.post('/risk-assessment/calculate', data);
}

/**
 * 获取风险等级颜色
 * @param {String} level - 风险等级(high, medium, low)
 * @returns {String} 颜色代码
 */
function getRiskLevelColor(level) {
  switch (level) {
    case 'high':
      return '#E74C3C'; // 红色
    case 'medium':
      return '#F39C12'; // 橙色
    case 'low':
      return '#2ECC71'; // 绿色
    default:
      return '#95A5A6'; // 灰色
  }
}

/**
 * 获取风险等级文本
 * @param {String} level - 风险等级(high, medium, low)
 * @returns {String} 风险等级文本
 */
function getRiskLevelText(level) {
  switch (level) {
    case 'high':
      return '高风险';
    case 'medium':
      return '中风险';
    case 'low':
      return '低风险';
    default:
      return '未评估';
  }
}

/**
 * 获取风险等级Icon
 * @param {String} level - 风险等级(high, medium, low)
 * @returns {String} 风险等级图标名称
 */
function getRiskLevelIcon(level) {
  switch (level) {
    case 'high':
      return 'warning';
    case 'medium':
      return 'info';
    case 'low':
      return 'success';
    default:
      return 'help';
  }
}

// 导出模块
module.exports = {
  getAssessment,
  getLatestAssessment,
  getAssessmentHistory,
  calculate,
  getRiskLevelColor,
  getRiskLevelText,
  getRiskLevelIcon
}; 